﻿using Nest;
using System;

namespace VisionCloud.Domain.DtoModel.RabbitMq
{
    public class SurfaceLogDto
    {
        [Date(Name = "@timestamp")]
        public DateTime TimeStamp { get; set; }

        /// <summary>
        /// 类名
        /// </summary>
        [Text(Name = "Class")]
        public string ClassName { get; set; }

        /// <summary>
        /// 日志等级
        /// </summary>
        [Text(Name = "Level")]
        public string Level { get; set; }

        /// <summary>
        /// 设备Id
        /// </summary>
        [Text(Name = "MachineId")]
        public string MachineId { get; set; }

        /// <summary>
        /// 机器名
        /// </summary>
        [Text(Name = "MachineName")]
        public string MachineName { get; set; }

        /// <summary>
        /// 错误码
        /// </summary>
        [Text(Name = "EventId")]
        public int EventId { get; set; }

        /// <summary>
        /// 错误信息
        /// </summary>
        [Text(Name = "Message")]
        public string Message { get; set; }

        /// <summary>
        /// 堆栈信息
        /// </summary>
        [Text(Name = "StackTrace")]
        public string StackTrace { get; set; }

        /// <summary>
        /// 项目名称
        /// </summary>
        [Text(Name = "Side")]
        public string Side { get; set; }

        /// <summary>
        /// 线程Id
        /// </summary>
        [Text(Name = "ThreadId")]
        public int ThreadId { get; set; }

        /// <summary>
        /// 进程Id
        /// </summary>
        [Text(Name = "ProcessId")]
        public string ProcessId { get; set; }

        /// <summary>
        /// 进程名
        /// </summary>
        [Text(Name = "ProcessName")]
        public string ProcessName { get; set; }

        /// <summary>
        /// 时间
        /// </summary>
        [Text(Name = "Time")]
        public DateTime Time { get; set; }

        /// <summary>
        /// 版本
        /// </summary>
        [Text(Name = "Version")]
        public string Version { get; set; }

        /// <summary>
        /// 请求api
        /// </summary>
        [Text(Name = "RequestPath")]
        public string RequestPath { get; set; }

        /// <summary>
        /// 请求方法名
        /// </summary>
        [Text(Name = "ActionName")]
        public string ActionName { get; set; }

        /// <summary>
        /// 拓展信息
        /// </summary>
        [Text(Name = "Extra")]
        public object Extra { get; set; }
    }
}